/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.ap.entity;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.List;
import com.google.common.collect.Lists;

import com.jeeplus.core.persistence.DataEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.modules.infor.entity.Project;
import com.jeeplus.modules.infor.entity.Staff;

/**
 * 支出Entity
 * @author sld
 * @version 2017-11-30
 */
public class Expenditure extends DataEntity<Expenditure> {
	
	private static final long serialVersionUID = 1L;
	private String department;		// 部门1
	private Staff responsiblePerson;		// 经办人
	private Date date;		// 日期
	private String oneSubject;		// 一级科目
	private String costObject;		// 费用对象
	private String costAffiliation;		// 费用归属
	private String documentNumber;		// 单据号
	private String billType;		// 票据类型
	private String billNumber;		// 票据号码
	private String billUploading;		// 票据上传
	private String documentStatus;		// 单据状态
	private Project projectName;      //项目名称
	private List<DetailsExpenditure> detailsExpenditureList = Lists.newArrayList();		// 子表列表
	private Double money;  //总费用
	private String minDate;   //开始日期
	private String max;  //截止日期
	private  String type;//住处类别
	private String dx;//费用大写

	public String getDx() {
		return dx;
	}

	public void setDx(String dx) {
		this.dx = dx;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getMinDate() {
		return minDate;
	}

	public void setMinDate(String minDate) {
		this.minDate = minDate;
	}

	public String getMax() {
		return max;
	}

	public void setMax(String max) {
		this.max = max;
	}
	public Double getMoney() {
		return money;
	}

	public void setMoney(Double money) {
		this.money = money;
	}

	public Expenditure() {
		super();
	}

	public Expenditure(String id){
		super(id);
	}

	@ExcelField(title="部门", align=2, sort=6)
	public String getDepartment() {
		return department;
	}

	public void setDepartment(String department) {
		this.department = department;
	}
	
	@ExcelField(title="经办人", align=2, sort=7)
	public Staff getResponsiblePerson() {
		return responsiblePerson;
	}

	public void setResponsiblePerson(Staff responsiblePerson) {
		this.responsiblePerson = responsiblePerson;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="日期", align=2, sort=8)
	public Date getDate() {
		return date;
	}

	public void setDate(Date date) {
		this.date = date;
	}
	
	@ExcelField(title="一级科目", align=2, sort=9)
	public String getOneSubject() {
		return oneSubject;
	}

	public void setOneSubject(String oneSubject) {
		this.oneSubject = oneSubject;
	}

	
	@ExcelField(title="费用对象", align=2, sort=12)
	public String getCostObject() {
		return costObject;
	}

	public void setCostObject(String costObject) {
		this.costObject = costObject;
	}
	
	@ExcelField(title="费用归属", align=2, sort=13)
	public String getCostAffiliation() {
		return costAffiliation;
	}

	public void setCostAffiliation(String costAffiliation) {
		this.costAffiliation = costAffiliation;
	}
	
	@ExcelField(title="单据号", align=2, sort=14)
	public String getDocumentNumber() {
		return documentNumber;
	}

	public void setDocumentNumber(String documentNumber) {
		this.documentNumber = documentNumber;
	}
	
	@ExcelField(title="票据类型", align=2, sort=15)
	public String getBillType() {
		return billType;
	}

	public void setBillType(String billType) {
		this.billType = billType;
	}
	
	@ExcelField(title="票据号码", align=2, sort=16)
	public String getBillNumber() {
		return billNumber;
	}

	public void setBillNumber(String billNumber) {
		this.billNumber = billNumber;
	}
	
	@ExcelField(title="票据上传", align=2, sort=17)
	public String getBillUploading() {
		return billUploading;
	}

	public void setBillUploading(String billUploading) {
		this.billUploading = billUploading;
	}
	
	@ExcelField(title="单据状态", dictType="d_status", align=2, sort=18)
	public String getDocumentStatus() {
		return documentStatus;
	}

	public void setDocumentStatus(String documentStatus) {
		this.documentStatus = documentStatus;
	}

	@ExcelField(title = "项目名称",align=2,sort=19)
	public Project getProjectName() {
		return projectName;
	}

	public void setProjectName(Project projectName) {
		this.projectName = projectName;
	}

	public List<DetailsExpenditure> getDetailsExpenditureList() {
		return detailsExpenditureList;
	}

	public void setDetailsExpenditureList(List<DetailsExpenditure> detailsExpenditureList) {
		this.detailsExpenditureList = detailsExpenditureList;
	}
}